package com.pqy.ts.controller;


import com.pqy.ts.entity.TComment;
import com.pqy.ts.entity.vo.CommentVo;
import com.pqy.ts.entity.vo.R;
import com.pqy.ts.service.TCommentService;
import com.pqy.ts.service.TLikeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpSession;
import java.util.List;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author panqiyi
 * @since 2022-06-05
 */
@RestController
@RequestMapping("/ts/tcomment")
@CrossOrigin
public class TCommentController {

    @Autowired
    private TLikeService likeService;

    @Autowired
    private TCommentService commentService;

    // 添加评论
    @PostMapping("addComment")
    public R addComment(@RequestBody TComment tComment, HttpSession session){
        // 先判断用户是否登录，从session中获取登录信息，这里占时不做；登录的用户才能评论与点赞
        commentService.saveComment(tComment);
        return R.ok();
    }

    // 展示评论列表
    @GetMapping("commentList/{itemId}/{userId}") // 一个文章或者视频等等 有多个评论; userId用于点赞图标颜色变化的需要
    public R getCommentList(@PathVariable String itemId,@PathVariable String userId){

        //System.out.println(itemId+"==="+userId);
        List<CommentVo> commentVos = commentService.getCommentList(itemId);
        // 获取点赞数并设置， 设置该登录用户评论点赞图标状态
        List<CommentVo> likecommentVos = likeService.getLikeCount(commentVos,userId);
        //System.out.println(likecommentVos);

        return R.ok().data("comments",likecommentVos);
    }
}

